﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;

using BUS;
using DTO;

namespace Control
{
    public partial class ctrlTiepNhanSachMoi : DevExpress.XtraEditors.XtraUserControl
    {
        public ctrlTiepNhanSachMoi()
        {
            InitializeComponent();
            
            //format năm xuất bản
            this.dateNamXuatBan.Properties.DisplayFormat.FormatString = "yyyy";
            this.dateNamXuatBan.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.dateNamXuatBan.Properties.EditFormat.FormatString = "yyyy";
            this.dateNamXuatBan.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.dateNamXuatBan.Properties.Mask.EditMask = "yyyy";
            
            //chỉ cho nhập số trên textbox trị giá
            this.txtTriGia.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
            
            //format ngày nhập
            this.dateNgayNhap.Properties.DisplayFormat.FormatString = "dd/MM/yyyy";
            this.dateNgayNhap.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.dateNgayNhap.Properties.EditFormat.FormatString = "dd/MM/yyyy";
            this.dateNgayNhap.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.dateNgayNhap.Properties.Mask.EditMask = "dd/MM/yyyy";
        }

        private void ctrlTiepNhanSachMoi_Load(object sender, EventArgs e)
        {
            //set date nam xuat ban
            dateNamXuatBan.DateTime = DateTime.Today;

            //set date ngay nhap
            dateNgayNhap.DateTime = DateTime.Today;

            //load thể loại
            lookUpTheLoai.Properties.DataSource = TheLoaiSachBUS.DocDanhSach();
            lookUpTheLoai.Properties.DisplayMember = "TenTheLoai";
            lookUpTheLoai.Properties.ValueMember = "MaTheLoai";
            lookUpTheLoai.ItemIndex = 0;

            //load tình trạng
            lookUpTinhTrang.Properties.DataSource = TinhTrangBUS.DocDanhSach();
            lookUpTinhTrang.Properties.DisplayMember = "TenTinhTrang";
            lookUpTinhTrang.Properties.ValueMember = "MaTinhTrang";
            lookUpTinhTrang.ItemIndex = 0;

            //set nhân viên
            txtTenNhanVien.Text = session.tenNhanVien;
        }

        private void LamMoi()
        {
            //set textbox
            txtTenSach.Text = "";
            txtTenTacGia.Text = "";
            txtNhaXuatBan.Text = "";
            txtTriGia.Text = "";

            //set lookUp
            lookUpTheLoai.ItemIndex = 0;

            //set date time
            dateNamXuatBan.DateTime = DateTime.Today;
            dateNgayNhap.DateTime = DateTime.Today;
        }

        private void btnDongY_Click(object sender, EventArgs e)
        {
            if (KiemTra() == false)
                return;

            try
            {
                //Lấy thông tin thể loại và tình trạng
                TheLoaiSachDTO dtoTheLoai = (TheLoaiSachDTO)lookUpTheLoai.GetSelectedDataRow();
                TinhTrangDTO dtoTinhTrang = (TinhTrangDTO)lookUpTinhTrang.GetSelectedDataRow();

                //tạo mới một dto sách
                SachDTO dto = new SachDTO
                {
                    MaNhanVien = session.maNhanVien,
                    MaTheLoai = dtoTheLoai.MaTheLoai,
                    MaTinhTrang = dtoTinhTrang.MaTinhTrang,
                    NamXuatBan = dateNamXuatBan.DateTime.Year,
                    NgayNhap = dateNgayNhap.DateTime,
                    NhaXuatBan = txtNhaXuatBan.Text.Trim(),
                    TenSach = txtTenSach.Text.Trim(),
                    TenTacGia = txtTenTacGia.Text.Trim(),
                    TriGia = float.Parse(txtTriGia.Text) 
                };

                //thực hiện thêm
                SachBUS.Them(dto);

                //refresh
                LamMoi();

                //show thông báo
                MessageBox.Show("Thêm thành công!!!");
            }
            catch (Exception ex)
            {
                //show lỗi
                MessageBox.Show(ex.Message, "Lỗi!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private bool KiemTra()
        {
            if (txtTenSach.Text.Trim() == "")
            {
                MessageBox.Show("Tên sách không được để trống", "Lỗi!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

            if (txtTenTacGia.Text.Trim() == "")
            {
                MessageBox.Show("Tác giả không được để trống", "Lỗi!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            
            if (txtNhaXuatBan.Text.Trim() == "")
            {
                MessageBox.Show("Nhà xuất bản không được để trống", "Lỗi!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

            if (txtTriGia.Text.Trim() == "")
            {
                MessageBox.Show("Trị giá không được để trống", "Lỗi!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

            return true;
        }
    }
}
